Method and device for determining a time-parameter

ABSTRACT

A method and device for determining a parameter (RTO) associated with a retransmission time-out feature in a data unit transmitter implementing a protocol (TCP) that provides an acknowledgment feature and a retransmission time-out feature, where according to one aspect decreasing values of the round trip time (RTT) are treated differently with respect to their influence on a mean deviation parameter (RTTVAR) than increasing values of the round trip time, where according to another aspect weight values (g, h, w) used in the determination of the parameter (RTO) are chosen such that at least one of them is time variable, and where according to a further aspect the parameter (RTO) is also calculated on the basis of a value (SR) indicative of the number of spurious time-outs in the communication.

BACKGROUND OF THE INVENTION

The present invention relates to a method and device for determining aparameter associated with a retransmission time-out feature in a dataunit transmitter.

Generally, in the field of communication one distinguishes betweencircuit-switched connections and data unit switched connections. In adata unit switched connection, an amount of data to be sent is dividedinto data units, and these data units are sent in accordance with aprotocol governing the communication. It may noted that the data unitsreceive different names in the context of different protocols, such aspackets, frames, etc., where the term “data unit” shall be usedgenerically for the purpose of the following description.

In order to ensure the reliable transmission of data, many protocolsprovide the feature of data unit retransmission. More specifically, dataunit retransmission means that the correct receipt of a data unit by thereceiver in a communication is acknowledged with an appropriateacknowledgment message that the receiver sends back to the sender. Oncean acknowledgment has been received by the sender, it can appropriatelycontinue sending further data units, or if no acknowledgment or anon-acknowledgment message is received, then the data unit that was notcorrectly received by the receiver can be retransmitted.

A feature that typically accompanies data unit retransmission is that ofa retransmission time-out. This feature means that the sender in acommunication will only wait for a predetermined period of time for anacknowledgment message, namely the retransmission time-out period. Afterthis time has passed without receipt of an acknowledgment, thecorresponding data unit is automatically retransmitted. This featureensures that if a data unit is lost, then the lost data unit willautomatically be retransmitted after the above-mentioned time-outperiod.

An example of a protocol that provides a retransmission andretransmission time-out feature is the so-called transmission controlprotocol (TCP), which is part of the well known TCP/IP protocol suite.In a general way, it is clear that the time-out period should bedetermined depending on the so-called round trip time RTT, i.e. the timethat passes between the sending of a data unit and the receipt of anacknowledgment for said data unit.Time−Out=f(RTT)  (1)

Namely, if a connection is “distant” (i.e. long RTT), then the time-outperiod must be set longer than for a “close” connection (i.e. shortRTT). In this context, it is also clear that the time-out period shouldbe set as long as necessary and as short as possible, because a time-outperiod that is set too long leads to unnecessary delays in thetransmission.

The measured values of RTT may vary strongly over short periods of time,due to a plurality of factors, such as traffic conditions on the networktransporting the data units, delayed acknowledgment mechanisms, etc. Inorder to overcome this problem, it was suggested to introduce a smoothedestimator for the roundtrip time. This is explained e.g. in “TCP/IPIllustrated, Volume 1” The Protocols” by W.

Richard Stevens, Section 21.3, Addison Wesley 1994. A first method ofdetermining an RTT estimator uses the following equationSRTT←α·SRTT+(1−α)·RTT  (2)where SRTT represents the smoothed estimator, RTT represents themomentarily measured round-trip time value, and a is a weight orsmoothening factor having a recommended value of 0.9. The smoothedestimator SRTT is updated every time a new measurement of RTT is made.The value 0.9 means that 90% of each new estimate is from the previousestimate, and 10% is from the new measurement. RFC 793 (RFC=Request forComments) recommended setting the so-called retransmission time-outvalue RTO asRTO=SRTT·β  (3)where RTO is the specific term used in connection with TCP for the abovedescribed time-out period, and β is a further weight factor, alsoreferred to as a delay variance factor, with a recommended value of 2.

The above described approach to the calculation of RTO has a problem inthat it cannot keep up with wide fluctuations in the RTT. This leads tounnecessary retransmissions that deteriorate the conditions in anetwork. An improvement was therefore suggested, which not only takesthe mean value into account but also attempts to keep track of thestandard deviation. It is mentioned in the above book by Stevens thatthe calculation of the standard deviation would be preferred, but thiswould require the calculation of squares and a square root, which ispreferably avoided. This leads to the following approach:Δ=RTT−SRTT  (4)SRTT←SRTT+g·Δ  (5)RTTVAR←RTTVAR+h·(|Δ|−RTTVAR)  (6)RTO=SRTT+4·RTTVAR  (7)where RTT again represents the measured round-trip time value, SRTT thesmoothed round-trip time estimator, RTTVAR the estimator for the meandeviation, RTO the retransmission time-out value, g a first weightfactor, and h a second weight factor. These weight factors g and h arealso referred to as gains, and the value of g is set to 0.125 whereasthe value of h is set to 0.25.

The above described approach of equations (4) to (7) has been in placefor over ten years.

OBJECT OF THE INVENTION

The object of the present invention is to provide an improved system ofdata transmission for a data unit transmitter implementing a protocolthat provides a retransmission time-out feature.

SUMMARY OF THE INVENTION

This object is solved by making the determination of a parameterassociated with the retransmission time-out feature (e.g. RTO) moreflexible and more adaptive.

According to a first aspect described in claim 1 and 33, the calculationof a mean deviation value (e.g. RTTVAR above) is performed such that thecontribution of the measured round-trip time value (e.g. RTT above) tosaid mean deviation value is different if the measured round-trip timevalue is smaller than a threshold that is determined on the basis of thestored smoothed round-trip time value (SRTT above), than if the measuredround-trip time value is larger than said threshold.

According to a preferred embodiment, this threshold is equal to thevalue of the smoothed round-trip time value. In other words, for theabove example of equations (4) to (7) this preferred embodiment meansthat RTTVAR is calculated differently for negative and positive valuesof Δ. In this way, it can be avoided that a decreasing value of themeasured round-trip time will lead to an increase in the retransmissiontime-out parameter. More specifically, as shall be explained in detailin the description of preferred embodiments, the fact that aboveequation (6) incorporates the absolute value of Δ, means that adecreasing value of RTT (RTT<SRTT) has the same impact on the value ofRTTVAR than an increasing value of RTT (RTT>SRTT). As a consequence, adecreasing value of RTT has the effect of increasing RTO, if the factor4·RTTVAR outweighs the factor of SRTT in above equation (7). Thisabsolutely undesired effect, which was recognized by the presentinventor, can be avoided by the above described general method of claim1.

In accordance with a second aspect of the present invention described inclaims 11 and 34, the weight factors (e.g. g, h and the specific factor4 before RTTVAR in equation (7)) are made variable over time. Thisfeature makes the determination of the time-out parameter (e.g. RTOabove) much more flexible with respect to the changing situation in thenetwork carrying the communication. In accordance with a preferredembodiment of this second aspect, the weight values are made dependenton the number of data units “in flight”, i.e. the number of data unitsthat were sent but not yet acknowledged at any point in time (alsoreferred to as the number of outstanding data units).

In accordance with a third aspect of the present invention described inclaims 17 and 35, the determination of the time-out parameter (e.g RTO)is done such that this parameter is also calculated on the basis of avalue indicative of the number of spurious time-outs that occur in thecommunication between a given sender and receiver. Spurious time-outsare time-outs caused by an excessive delay on the link, and not by anactual loss of data units. The advantage of this is that the implicationgiven by spurious time-outs, namely that the time-out period is tooshort, can be used as a basis for calculating a more conservative (i.e.longer) time-out period.

The three above described aspects can preferably be combined in anyappropriate way. Such a combination is also referred to as an Eifelretransmission timer. Advantageous embodiments of the invention aredescribed in the subclaims.

BRIEF DESCRIPTION OF FIGURES

A more complete understanding of the present invention can be gatheredfrom the following detailed description of preferred embodiments, whichmake reference to the figures, in which:

FIG. 1 is a graph showing various parameters associated with theretransmission time-out feature in the course of time, for a TCP steadystate;

FIG. 2 shows an enlarged section of the graph of FIG. 1, and

FIG. 3 shows another graph of retransmission time-out parameters overtime.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following description shall be given in the context of anapplication to TCP. It should however be noticed that this is only apreferred example, and that the present invention may be applied to anytransmission protocol that provides retransmission and retransmissiontime-out.

According to a first aspect of the invention, when the value of the meandeviation value RTTVAR is updated, the contribution of the measuredround trip time value RTT to the updated mean deviation value RTTVAR isdifferent if the measured round trip time value RTT is smaller than apredetermined threshold TH that is determined on the basis of the storedsmoothed round trip time value SRTT(old), than if the measured roundtrip time value RTT is larger than the predetermined threshold TH.

According to a first embodiment of the invention, the threshold TH isequal to the stored value of SRTT and the calculation or updating ofparameter RTTVAR as shown in above equation (6) is modified such that$\begin{matrix}\left. {RTTVAR}\leftarrow\left\{ \begin{matrix}{{{RTTVAR} + {{h \cdot \left( {\Delta - {RTTVAR}} \right)}\quad{if}\quad\Delta}} > 0} \\{{{{RTTVAR}\quad{if}\quad\Delta} < 0}\quad}\end{matrix} \right. \right. & (8.1)\end{matrix}$

The value Δ=0 may be assigned to either the upper or lower alternativein equation (8.1), but it is preferable that it be assigned to the upperalternative, in order to ensure that RTTVAR decays over time if RTTbecomes constant.

As can be seen, the negative variations of RTT, i.e. when RTT is smallerthan SRTT, are filtered out. In this way, the disadvantageous impact oftaking the absolute value of Δ in equation (6) is obviated. This shallbecome clearer in connection with the following detailed description ofFIG. 1.

FIG. 1 shows parameters associated with the retransmission time-out overtime. The parameters were measured in TCP steady state, i.e. theconnection between the given sender and receiver had a link all toitself. The graph at the bottom of the figure that changes in steps,describes the measured values of the round-trip time RTT. The symbolsfor RTO(pa) stand for the retransmission time-out parameter ascalculated with prior art equations (4) to (7). The values Rexmt(pa)relate to the retransmission timer as it is typically implemented. Thisshall be explained briefly.

Theoretically, the retransmission time-out value RTO and theretransmission timer Rexmt should be identical. However, as recognizedby the present inventor, the prior art implementations of TCP in factcontain an error that always leads to a difference between RTO andRexmt. This error is due to the fact that the actual retransmissiontimer is always started for the oldest outstanding (i.e. notacknowledged) data unit. However, due to the use of cumulative ordelayed acknowledgments, it will typically not be known at the time ofsending a specific data unit that this specific data unit will soonbecome the oldest outstanding data unit. Only after an acknowledgmentfor all data units up to said specific data units has been received, isit known that this specific data unit is the oldest outstanding one. Allpractical implementations of TCP always start the retransmission timeronly when having received this acknowledgment for all data units up tosaid specified data unit. Consequently, there is always a delay 6between the sending of the data unit and the receipt of theacknowledgment message for all data units up to said data unit, whichleads to the retransmission timer Rexmt being larger than theretransmission time-out value RTO, namely Rexmt=RTO+δ.

The consequence of this effect is that the retransmission time-out isalways too conservative, i.e. too long.

Returning to FIG. 1, this difference between RTO(pa) and Rexmt(pa) isapparent. Furthermore, the figure also shows values of RTO calculated inaccordance with the invention indicated above in equation (8.1).

As can be seen from the thick arrows A and B, when the measuredround-trip time values RTT decrease sharply, then this leads to a sharpincrease of RTO(pa). This is highly undesirable, as the retransmissiontime-out value should have the tendency to follow the round-trip time.As can be seen, this is clearly achieved by the values of RTO inaccordance with the invention, which are calculated on the basis of amean deviation value RTTVAR calculated in accordance with above equation(8.1). As can be seen, the values of RTO determined in accordance withthe invention follow the tendency of RTT, and always lie close and aboveRTT, precisely as this is desired.

FIG. 2 shows an enlarged section of FIG. 1, where only RTT, RTO(pa) andRTO are shown. As can be seen, the value of RTO as calculated inaccordance with the invention has a more stable graph than the RTO(pa)calculated in accordance with the prior art.

In the above equation (8.1), the threshold TH used to determine whichcontribution RTT should make to the mean deviation RTTVAR was the storedsmoothed round trip time value SRTT. However, the invention is notrestricted thereto, as the threshold TH can in general be anyappropriate value determined on the basis of SRTT, such as for exampleTH(SRTT)=SRTT+const or TH(SRTT)=SRTT−const, where const stands for anysuitable constant value, i.e. a threshold that lies somewhat above orbelow the stored value of SRTT. In general, TH can be any suitablefunction of SRTT.

This therefore leads to a more general equation (8.2): $\begin{matrix}\left. {RTTVAR}\leftarrow\left\{ \begin{matrix}{{{RTTVAR} + {{h \cdot \left( {\Delta - {RTTVAR}} \right)}\quad{if}\quad{RTT}}} > {{TH}({SRTT})}} \\{{{{RTTVAR}\quad{if}\quad{RTT}} < {{TH}({SRTT})}}\quad}\end{matrix} \right. \right. & (8.2)\end{matrix}$

Again, RTT=TH(SRTT) is preferably assigned to the upper alternative.

In the above equations (8.1) and (8.2), two respective alternatives forcalculating RTTVAR are given. It is however equally well possible that alarger number of alternatives be given, depending not only on the valuesof the measured RTT and the stored value of SRTT, but also on the storedvalue of RTTVAR. Namely, a preferred variation of equation (8.1) isgiven in following equation (8.3), which is written in pseudo code forreasons of simplicity and clarity. $\begin{matrix}{{{{IF}{\quad\quad}\Delta} \geq {0\quad{THEN}}}\quad{{{{IF}\quad\Delta} - {RTTVAR}} < {0\quad{THEN}}}\quad\quad\left. {RTTVAR}\leftarrow{{RTTVAR} + {h^{2} \cdot \left( {\Delta - {RTTVAR}} \right)}} \right.\quad{ELSE}\quad\left. {RTTVAR}\leftarrow{{RTTVAR} + {h \cdot \left( {\Delta - {RTTVAR}} \right)}} \right.{ELSE}\quad\left. {RTTVAR}\leftarrow{RTTVAR} \right.} & (8.3)\end{matrix}$

In other words, for the case that RTT is above the threshold (in thiscase TH=SRTT; i.e. Δ=0), two sub-cases are considered. If h is a valuebetween 0 and 1 or a function restricted to this range (which willgenerally be the case), then the effect of above equation (8.3) is atype of “shock absorber” characteristic, namely the increase of RTO (RTObeing calculated in any suitable way, as shall be explained in furtheron) in response to an increase in RTT is faster then the decrease of RTOin response to a decrease of RTT.

Finally, as was the case for equation (8.1), equation (8.3) may also begeneralized to threshold values other than TH=SRTT (Δ=0):$\begin{matrix}{{{{IF}{\quad\quad}{RTT}} \geq {{{TH}({SRTT})}\quad{THEN}}}\quad{{{{IF}\quad\Delta} - {RTTVAR}} < {0\quad{THEN}}}\text{}\quad\left. {RTTVAR}\leftarrow{{RTTVAR} + {h^{2} \cdot \left( {\Delta - {RTTVAR}} \right)}} \right.\quad{ELSE}\quad\left. {RTTVAR}\leftarrow{{RTTVAR} + {h \cdot \left( {\Delta - {RTTVAR}} \right)}} \right.{ELSE}\quad\left. {RTTVAR}\leftarrow{RTTVAR} \right.} & (8.4)\end{matrix}$

In above equations (8.1) to (8.4) the weight parameter h can be chosenas a constant (h=const.) or a variable value. Preferably, it is chosenas being variable over time (h=h(t)). More preferably, it is chosen tobe associated with the number N of outstanding data units at the giventime. The momentary value h(t) can e.g. be chosen as being 1/N(t), whereN(t) represents the number of data units that were sent but notacknowledged up to the point in time t.

Although it is possible to directly associate h with N, it is preferableto use a moving average or smoothed value of N (similar to SRTT being asmoothed average value of the “noisy” RTT values). In other words, amoving average value SN of the number N of outstanding data units can beused, which can e.g. be determined asSN←SN+m·Nwhere m· is an appropriate weight factor.

As another possibility of finding a value indicative of the number ofoutstanding data units, the weight h can be associated with theso-called slow start threshold ssthresh, e.g. known from TCP, see abovementioned book by Stevens, Chapter 21.6, because ssthresh can in fact beregarded as a smoothed average for the number of outstanding data units.

The slow start threshold ssthresh is conventionally used in connectionwith congestion avoidance. Congestion avoidance is used with windowbased flow control, and has two primary parameters, namely the slowstart threshold and the so-called congestion window cwnd. The congestionavoidance routine basically works in the following manner:

-   -   the send window is never larger than the minimum of the        congestion window and the receiver's advertised window;    -   when congestion occurs (e.g. indicated by a time-out or the        receipt of a duplicate acknowledgment), one half (or some other        appropriate fraction) of the momentary send window size is saved        as ssthresh, and in the event of a time-out, the congestion        window is reset to one segment;    -   when new data is acknowledged, the cwnd is increased, depending        on the relation between cwnd and ssthresh, namely if cwnd is        smaller or equal to ssthresh, then cwnd is incremented by one        segment every time an acknowledgment is received (this routine        is called slow start), and if cwnd is larger than ssthresh, then        cwnd is incremented by 1/cwnd each time an acknowledgment is        received (this is the actual congestion avoidance).

Slow start leads to an exponential increase in window size, whereascongestion avoidance only leads to a linear increase.

Returning to the determination of h, in general the weight h is chosenas a function of the value indicative of the number of outstanding dataunits, i.e. as a function of N, SN or sstresh. It may be noted thatthese are only examples, and any value indicative (be it directly orindirectly) of the number of outstanding data units is suitable. It ishowever preferable to use the value of ssthresh, which is typicallyalready available in a normal TCP implementation, such that no separatedetermination routine is necessary.

According to a preferred embodiment, the weight h is then chosen as theinverse of a function of ssthresh, namely as h=1/(ssthresh+1). Althoughsstresh is defined in byte, the value of sstresh is used in terms ofsegments in the present application, i.e. ssthresh=1 means that the sizeof sstresh equals one segment, ssthresh=2 means that the size of sstreshequals two segments, etc. Preferably the size of sstresh is measured interms of the maximum segment size MSS, which is a parameter that is setor negotiated during the initial connection phase. Alternatively, anarbitrary fixed value can be used as a segment reference, such as 1024byte.

The above equations (8.1) to (8.4), together with the variouspossibilities for h, can be combined with above equations (4), (5) and(7) for the determination of RTO. Preferably, however, equations (8.1)to (8.4) are combined with the following equations (9) and (10):SRTT←SRTT+g(t)·Δ  (9)RTO=SRTT+w(t)·RTTVAR  (10)where g(t) and w(t) represent time variable weights. According to apreferred embodiment, the three weights g(t), h(t) and w(t) areassociated with one another in such a way that h=g and w=1/g.

In a general way, g and/or w can be chosen as being associated with thenumber N of outstanding data units, as explained above in connectionwith the weight h, i.e. g and/or w can also be chosen as functions of avalue indicative of the number N of outstanding data units, such as N,SN, or ssthresh.

More preferably, the above two features are combined, namely all threeweights g, h and w are chosen as being associated with N in a specificway, namely with an appropriately selectable function of F (where F is afunction of N, SN, sstresh or any other appropriate value indicative ofthe number of outstanding data units):g=1/F ; h=1/F; w=F.

As an example, F(N) can be chosen as F(N)=N+1, such thatg=1/(N+1); h=1/(N+1); w=N+1.

It is equally well possible to choose the weights on the basis of thesmoothed average SN or the slow start threshold ssthresh, such thatg=1/F(ssthresh); h=1/F(ssthresh); w=F(ssthresh),for example:g=1/(ssthresh+1); h=1/(ssthresh+1); w=ssthresh+1.

Naturally, the combinations can also be such that only one of weights g,h and w is time variable, or that two of these three weights are timevariable, the respectively others always being constant.

The positive effects of choosing the weights in the above way can beseen in FIG. 3, which again shows the measured round-trip time valuesRTT, the calculated retransmission time-out value of the prior artRTO(pa), the retransmission timer of the prior art Rexmt(pa) and theretransmission time-out value RTO calculated in accordance with aboveequations (8), (9) and (10) using g=1/(ssthresh+1), h=1/(sstresh+1) andw=ssthresh+1. As can be seen, the problem of using constant weightparameters can lead to the retransmission time-out value RTO(pa) tooclosely following the round-trip time value RTT, such that in fact thereis no smoothing or averaging effect. This leads to a destabilized flowcontrol procedure. On the other hand, as can be seen from the graphrepresenting RTO of the invention, the retransmission time-out value ofthe invention follows the tendency of RTT, but remains above RTT. Inother words, by using the time variable weight factors g, h and w, it ispossible to avoid that the value RTO “falls into” the value of RTT,which could lead to spurious time-outs, which should generally beavoided.

Although the above embodiment was described in connection with equations(8.1) to (8.4), it is also possible to introduce a time variable weightfactor h(t), such as e.g. h=1/(N(t)+1) or h=1/(ssthresh+1) in prior artequation (6). Naturally it is also possible to combine equation (10)using a time variable weight w(t) with equations (5) and (6) using fixedweights g, h, or to combine equation (9) using a time variable weightg(t) with equations (5) and (7) using fixed weights. In a general way,the second aspect of the present invention is to choose at least one ofsaid three weights as a time dependent parameter, preferably as beingassociated with the number of outstanding or unacknowledged data units.

According to a third aspect of the present invention, the determinationof the retransmission time-out value RTO is modified such thatRTO←(SRTT+w·RTTVAR)·Φ(SPTO)  (11)where Φ(SPTO) represents a function associated with the number SPTO ofspurious time-outs. Spurious time-outs are such time-outs that arecaused by an excessive delay along the link between a sender and areceiver, and not by the loss of a data unit, in other words, had theRTO been longer, no time-out would have occurred, because theacknowledgment would have been received, if the sender had only waitedlong enough.

As an example, the function Φ(SPTO) in equation (11) can be chosen asΦ(SPTO)=1+f·(n(SPTO)/n)  (12)where n(SPTO) represents the number of spurious data unitretransmissions caused by spurious time-outs during a predeterminedinterval, n represents the total number of data unit transmissionsduring said predetermined interval, and f is a multiplication parameter.f can be chosen as having any appropriate value, but it has been foundthat a value of 50 or larger is especially effective.

This predetermined time interval may be set in any desired way, i.e. toa fixed value such as the maximum segment lifetime (MSL) which is e.g.defined as 2 minutes, or to a value dependent on the momentarycommunication, such as the total communication time for the momentarycommunication from the start of said communication to the present.

It may be noted that one spurious time-out can lead to more than onespurious retransmission. For example, if 100 data units are sent, andthere were two spurious time-outs, the first of which led to oneretransmission and the second of which led to two retransmissions, thenSR assumes the value 3/100.

According to a preferred embodiment, Φ(SPTO) is chosen as a smoothedvalue SR that is defined in the following way (again pseudo code ischosen for simplicity): $\begin{matrix}{{{IF}{\quad\quad}{``{{spurious}\quad{time}\text{-}{out}}"}\quad{THEN}}\quad\left. {SR}\leftarrow{{MIN}\left\{ {{NC},{{SR} + {0.5 \cdot \left( {1 - {SR}} \right)}}} \right\}} \right.{ELSE}\quad\left. {SR}\leftarrow{{SR} \cdot \left( {1 - \left( {K/M} \right)} \right)} \right.} & (13)\end{matrix}$where MIN{x,y} is equal to the minimum of x and y, NC is a whole numberlarger than 0, i.e. N=1, 2, 3 . . . , K is a rate value with 0≦K<1, andM is a variable that is indicative of the number of data units sent in acycle. A cycle is a period of time that corresponds to one set of risingsteps of RTT as shown in the Figures, see e.g. the rising steps betweenabout 69 s and 92 s in FIG. 1, or between 3.9 s and 7.15 or between 7.15and 10.6 in FIG. 3. Preferably one again uses a smoothed average of thisnumber, or one determines M on the basis of the slow start thresholdsstresh asM=φ(ssthresh),  (14)φ(representing an arbitrary function, and preferably asM=1.5·ssthresh ²  (15)NC is preferably chosen as 1 or 2, and K preferably lies between 0.01and 0.1, more preferably at about 0.05.

In other words, each time that an acknowledgment is received, it isdetermined if this acknowledgment indicates a spurious time-out, inwhich case the smoothed average SR is updated as shown in the firstalternative, and if not, then SR is updated as shown in the secondalternative.

As can be seen from equation (11), the multiplication with the factorΦ(SPTO) progressively makes the RTO (the predictor) more optimistic whenspurious time-outs have not occurred for some time, and vice versa makesthe RTO more conservative after a spurious time-out has occurred.

The determination of spurious time outs can be done in any desired-way,for example as explained in co-pending European Patent Application99100274.2, which is herewith incorporated by reference.

More specifically, a spurious time-out is identified by determining thatafter a given data unit was retransmitted due to a time-out, thereceived acknowledgment is not in response to the retransmitted dataunit, but in response to the data unit that caused the time-out.

One method of determining spurious time-outs can be to have the senderkeep a record of the round-trip time RTT associated with the connectionbetween sending and receiving peer (this is typically done anyway), andespecially have the sender keep a record of the shortest RTT foundduring the communication (also referred to as session) up to the pointof time under consideration. Then, if an acknowledgment data unit for aretransmitted data unit is received within a time period that is smallerthan a predetermined fraction of said shortest RTT, then the senderdetermines that this acknowledgment belongs to the original transmissionand not the retransmission. This fraction may be set to a fixed value,or may itself be an adaptive parameter. Naturally, it is not necessarythat the comparison value multiplied with said fraction is the shortestmeasured RTT, much rather it is also possible that the sender keeps anaverage RTT value, such as the above mentioned SRTT, and that thisaverage value is used as a basis for the determination of spurioustime-outs. In this sense, the comparison value to be multiplied by saidfraction is generally a function of one or more RTT values measured inthe course of the connection (i.e. during the session).

Another possibility of determining spurious time-outs is to have thesender add a mark to data units that it sends, where said mark isdefined in such a way that it allows to distinguish between an originaltransmission and a retransmission. Then, the receiver can accordinglymark acknowledgment data units, such that the sender is capable ofidentifying if an acknowledgment refers to the original transmission orthe retransmission. This marking of data units can be done in anydesired way. For example, it would in theory be possible to simplydesignate a single bit in the data units, where a value of 0 wouldindicate original transmission and a value of 1 a retransmission, orvice versa. In a general sense, a bitstring can be chosen that may alsoconvey some more information. However, in connection with protocols thatprovide such an option, it is preferred to use the timestamp option.This option is for example well-known for TCP, see the above-mentionedbook by W. R. Stevens. In other words, it is preferred to include atimestamp in sent data units, which indicates when the data unit wassent. The receiver can then simply include the same timestamp in theacknowledgment messages, so that the sender has a unique way ofidentifying the data units to which the acknowledgment refers.

Returning to equation (11), it may be pointed out that the factorΦ(SPTO) is a means to adaptively control the conservativeness of the RTO(the predictor). In other words, the more spurious time-outs occur, themore conservative the RTO and vice versa.

Also, the parameter w shown in figure (11) may be a fixed value or atime variable value, just as with the previous embodiments, and ispreferably equal to the above mentioned function F (e.g. F=ssthresh+1)that depends on an appropriate parameter that is indicative of thenumber of outstanding data units. Naturally, the above embodimentdescribed in connection with equation (11) can be combined with one ormore or equations (5), (6), (8.1) to (8.4) or (9) in any desirable way.

Preferably, the determination of RTO in accordance with equation (11) iscomplemented by the setting of a maximum limit value and a minimum limitvalue, as shown in the following equation (16):RTO←(SRTT+w·RTTVAR)·Φ(SPTO)RTO=MAX{RTO,RTT+n·TICK}RTO=MIN{RTO,T _(const)}  (16)where MAX{x,y} gives the maximum of x and y, and MIN{x,y} gives theminimum of x and y. TICK represents the timer granularity, i.e. thesmallest amount of time that the system can resolve, n is a positiveinteger, and T_(const) is an upper time limit, such that RTO does notbecome excessively large. For example, T_(const) can be chosen as 64sec. The integer n is preferably 1, such the second equation of (16)means that RTO is always determined as at least being larger than RTT byone tick.

The setting of an upper and lower limit for RTO may also be utilized inconnection with any of the other embodiments above.

In the following, an embodiment will be described, which the inventorpresently considers the best mode, which is a preferred combination ofthe above aspects. It is also referred to as the Eifel retransmissiontimer. More specifically, this best mode consists in determining RTO asfollows:Δ=RTT−SRTT  (17)g=h=1/w=1/(ssthresh+1)  (18)SRTT←SRTT+g·Δ  (19) $\begin{matrix}{\quad\left. {SRTT}\leftarrow{{SRTT} + {g \cdot \Delta}} \right.} & (19) \\{\quad{{{{IF}\quad\Delta} \geq {0\quad{THEN}}}\quad{{{{IF}\quad\Delta} - {RTTVAR}} < {0\quad{THEN}}}\text{}\quad\left. {RTTVAR}\leftarrow{{RTTVAR} + {h^{2} \cdot \left( {\Delta - {RTTVAR}} \right)}} \right.\quad{ELSE}\quad\left. {RTTVAR}\leftarrow{{RTTVAR} + {h \cdot \left( {\Delta - {RTTVAR}} \right)}} \right.\quad{ELSE}\quad\left. {RTTVAR}\leftarrow{RTTVAR} \right.}\quad} & (20) \\{{{IF}{\quad\quad}{``{{spurious}\quad{time}\text{-}{out}}"}\quad{THEN}}\quad\left. {SR}\leftarrow{{MIN}\left\{ {{NC},{{SR} + {0.5 \cdot \left( {1 - {SR}} \right)}}} \right\}} \right.{ELSE}\quad\left. {SR}\leftarrow{{SR} \cdot \left( {1 - \left( {K/M} \right)} \right)} \right.} & (21)\end{matrix}$  RTO←(SRTT+w·RTTVAR)·Φ(SPTO)RTO=MAX{RTO,RTT+n ·TICK}RTO=MIN{RTO,T _(const)}  (22)

The above parameters and values are all defined in the precedingembodiments, such that a repetition of definitions and preferred valuesis not necessary.

This series of calculations (17) to (22) is carried out each time that avalue of RTT is measured. In other words, the value of RTO is updatedfor every measurement of RTT.

In all of the above embodiments, the various calculations were based onthe measurement of round trip time values RTT. Preferably, thesemeasurements are conducted for every data unit that is sent, indeparture from known implementations of TCP, which only time one dataunit at a time, so that on average there is only one RTT measurement perRTT. The timing of every data unit sent is preferably done by utilizingthe time stamp option, as e.g. defined for TCP in RFC 1323.

As already mentioned initially, the present invention is applicable toany data unit communication system that provides retransmission andtime-out, such as e.g. TCP or similar protocols. A preferred applicationof the present invention is in wireless data unit switched communicationsystems, in which changes in available bandwidth can be significant,which in turn leads to strong variations in RTT. Examples of suchsystems are GPRS (General Packet switched Radio System) and UMTS(Universal Mobile Telecommunication System).

Although the present invention has been described in the context ofconcrete embodiments, these only serve the purpose of explaining thepresent invention to a person skilled in the art, and are not intendedto be restrictive. Much rather, the scope of the present invention isdefined by the appended claims.

1. A method of determining a parameter associated with a retransmissiontime-out feature in a data unit transmitter implementing a protocol thatprovides an acknowledgment feature of sending acknowledgment messagesfor the correct receipt of data units from the receiver to the sender ofa communication, and provides said retransmission time-out feature ofretransmitting data units if an acknowledgment does not arrive at thesender within a time-out period, comprising the steps of: measuring around trip time value, the round trip time being indicative of the timethat passes between the sending of a given data unit and the receipt ofthe acknowledgment corresponding to said given data unit, calculating anew smoothed round trip time value at least on the basis of a storedsmoothed round trip time value and said measured round trip time value,calculating a new mean deviation value indicative of the mean deviationof said round trip time values over time, at least on the basis of astored mean deviation value, said measured round trip time value andsaid stored smoothed round trip time value, and calculating saidparameter at least on the basis of said new smoothed round trip timevalue and said new mean deviation value, where a contribution of saidmeasured round trip time value to said new mean deviation value isdifferent if said measured round trip time value is smaller than apredetermined threshold that is determined on the basis of said storedsmoothed round trip time value, than if said measured round trip timevalue is greater than said predetermined threshold.
 2. The method ofclaim 1, wherein said predetermined threshold is equal to said storedsmoothed round trip time value.
 3. The method of claim 1, wherein saidnew mean deviation value is calculated as being equal to or smaller thansaid stored mean deviation value if said measured round trip time valueis smaller than said predetermined threshold.
 4. The method of claim 1,wherein said new mean deviation value is calculated as a function ofsaid stored mean deviation value, said stored smoothed round trip timevalue, said measured round trip time value, and a weight factor if saidmeasured round trip time value is larger than said predeterminedthreshold.
 5. The method of claim 4, wherein said weight factor isvariable over time.
 6. The method of claim 5, wherein said new meandeviation value (RTTVAR(new)) is calculated as:RTTVAR(new)=RTTVAR(old)+h·((RTT−SRTT(old))−RTTVAR(old)) if said measuredround trip time value (RTT) is greater or equal to said predeterminedthreshold (TH(SRTT(old))), where RTTVAR(new) represents the new meandeviation value, RTTVAR(old) represents the stored mean deviation value,SRTT(old) represents the stored round trip time value, RTT representsthe measured round trip time value, and h represents said weight factor.7. The method of claim 5, wherein said new mean deviation value(RTTVAR(new)) is calculated asRTTVAR(new)=RTTVAR(old)+h·((RTT−SRTT(old))−RTTVAR(old)) if said measuredround trip time value (RTT) is greater or equal to said predeterminedthreshold (TH(SRTT(old))) and(RTT−SRTT(old))−RTTVAR(old)≧0, and asRTTVAR(new)=RTTVAR(old)+h ²·((RTT−SRTT(old))−RTTVAR(old)) if saidmeasured round trip time value (RTT) is greater or equal to saidpredetermined threshold (TH(SRTT(old))) and(RTT−SRTT(old))−RTTVAR(old)<0, where RTTVAR(new) represents the new meandeviation value, RTTVAR(old) represents the stored mean deviation value,SRTT(old) represents the stored round trip time value, RTT representsthe measured round trip time value, and h represents said weight factor.8. The method of claim 4, wherein a value of said weight factor at agiven time is associated with a value indicative of the number of dataunits that were sent up to said given time, but that were notacknowledged up to said given time.
 9. The method of claim 8, whereinsaid value (N. SN, ssthresh) indicative of the number of data units thatwere sent up to said given time, but that were not acknowledged up tosaid given time, is one of the number of data units that were sent up tosaid given time, but that were not acknowledged up to said given time, asmoothed average of said number of data units that were sent up to saidgiven time, but that were not acknowledged up to said given time, andthe slow start threshold.
 10. The method of claim 8, wherein said weightfactor is equal to the inverse value of a sum of said value indicativeof the number of data units that were sent up to said given time, butthat were not acknowledged up to said given time, and one.
 11. A methodof determining a parameter associated with a retransmission time-outfeature in a data unit transmitter implementing a protocol that providesan acknowledgment feature of sending acknowledgment messages for thecorrect receipt of data units from the receiver to the sender of acommunication, and provides said retransmission time-out feature ofretransmitting data units if an acknowledgment does not arrive at thesender within a time-out period, comprising the steps of: measuring around trip time value, the round trip time being indicative of the timethat passes between the sending of a given data unit and the receipt ofthe acknowledgment corresponding to said given data unit, calculating anew smoothed round trip time value at least on the basis of a storedsmoothed round trip time value, said measured round trip time value, anda first weight factor, calculating a new mean deviation value indicativeof the mean deviation of said round trip time values over time, at leaston the basis of a stored mean deviation value, said measured round triptime value, said stored smoothed round trip time value, and a secondweight factor (h), and calculating said parameter at least on the basisof said new smoothed round trip time value, said new mean deviationvalue, and a third weight factor, where at least one of said first,second and third weight factors is variable over time.
 12. The method ofclaim 11, wherein a value at a given time of said at least one weightfactor, is associated with a value indicative of the number of dataunits that were sent up to said given time, but that were notacknowledged up to said given time.
 13. The method of claim 11, whereinsaid first, second and third weight factor are time dependent, and saidfirst and second weight factor are identical, and said third weightfactor is equal to the inverse value of said first weight factor. 14.The method of claim 12, wherein said first weight factor and said secondweight factor is equal to an inverse value of a predetermined functionof said value indicative of the number of data units that were sent upto said given time, but that were not acknowledged up to said giventime, and said third weight factor is equal to said function.
 15. Themethod of claim 14, wherein said predetermined function is the sum ofsaid value indicative of the number of data units that were sent up tosaid given time, but that were not acknowledged up to said given time,and one.
 16. The method of claim 12, wherein said value indicative ofthe number of data units that were sent up to said given time, but thatwere not acknowledged up to said given time, is one of the number ofdata units that were sent up to said given time, but that were notacknowledged up to said given time, a smoothed average of said number ofdata units that were sent up to said given time, but that were notacknowledged up to said given time, and the slow start threshold.
 17. Amethod of determining a parameter associated with a retransmissiontime-out feature in a data unit transmitter implementing a protocol thatprovides an acknowledgment feature of sending acknowledgment messagesfor the correct receipt of data units from the receiver to the sender ofa communication, and provides said retransmission time-out feature ofretransmitting data units if an acknowledgment does not arrive at thesender within a time-out period, comprising the steps of: measuring around trip time value, the round trip time being indicative of the timethat passes between the sending of a given data unit and the receipt ofthe acknowledgment corresponding to said given data unit, calculating anew smoothed round trip time value at least on the basis of a storedsmoothed round trip time value and said measured round trip time value,calculating a new mean deviation value indicative of the mean deviationof said round trip time values over time, at least on the basis of astored mean deviation value, said measured round trip time value andsaid stored smoothed round trip time value, and calculating saidparameter at least on the basis of said new smoothed round trip timevalue and said new mean deviation value, where said parameter is alsocalculated on the basis of a value indicative of the number of spurioustime-outs that occurred in said communication between said sender andsaid receiver.
 18. The method of claim 17, wherein said parameter iscalculated as a product of a first factor that depends on said newsmoothed round trip time value and said new mean deviation value, and asecond factor that depends on said value indicative of the number ofspurious time-outs.
 19. The method of claim 17, wherein said valueindicative of the number of spurious time-outs is the sum of one and theproduct of the fraction of the number of data unit retransmissionscaused by spurious time-outs divided by the total number of transmitteddata units over a predetermined period of time and a multiplicationfactor.
 20. The method of claim 19, wherein said multiplication factoris greater or equal to fifty.
 21. The method of claim 17, wherein saidvalue indicative of the number of spurious time-outs is a smoothedaverage determined on the basis of the number of spurious time-outs. 22.The method of claim 21, wherein said smoothed average (SR) is determinedsuch that when an acknowledgment is received, it is determined if saidacknowledgment indicates a spurious time-out, in which case a storedvalue of said smoothed average (SR) is updated as the minimum of aninteger constant (N) andSR+wsr·(1−SR), where SR represents the stored value of said smoothedaverage, and wsr represents a weight factor, and if said time-out is nota spurious time-out, said smoothed average is updated as the product ofsaid stored value of said smoothed average and a predetermined factor.23. The method of claim 22, wherein said weight factor is equal to 0.5.24. The method of claim 22, wherein said predetermined factor isassociated with a value indicative of the number of data units sent percycle.
 25. The method of claim 24, wherein said value indicative of thenumber of data units per cycle is determined on the basis of the slowstart threshold.
 26. The method of claim 25, wherein said value (M) isdetermined asM=1.5·ssthresh ² where M represents said value and ssthresh representsthe slow start threshold.
 27. The method of claim 24, wherein saidpredetermined factor is equal to(1−(K/M)), where M represents said value (M) indicative of the number ofdata units sent per cycle, and K is a value with 0≦K<1.
 28. The methodof claim 1, wherein an upper and a lower limit value are set for saidparameter.
 29. The method of claim 28, wherein said lower limit value isat least the sum of the measured round trip time value and the ticksize, where the tick size is the smallest period of time that a timingsystem in said data unit transmitter can resolve.
 30. The method ofclaim 11, wherein an upper and a lower limit value are set for saidparameter.
 31. The method of claim 30, wherein said lower limit value isat least the sum of the measured round trip time value and the ticksize, where the tick size is the smallest period of time that a timingsystem in said data unit transmitter can resolve.
 32. The method ofclaim 17, wherein an upper and a lower limit value are set for saidparameter.
 33. The method of claim 32, wherein said lower limit value isat least the sum of the measured round trip time value and the ticksize, where the tick size is the smallest period of time that a timingsystem in said data unit transmitter can resolve.
 34. The method ofclaim 1, wherein the round trip time is measured for every data unitsent by said sender.
 35. The method of claim 34, wherein said parameteris calculated each time that a round trip time value is measured. 36.The method of claim 11, wherein the round trip time is measured forevery data unit sent by said sender.
 37. The method of claim 36, whereinsaid parameter is calculated each time that a round trip time value ismeasured.
 38. The method of claim 17, wherein the round trip time ismeasured for every data unit sent by said sender.
 39. The method ofclaim 38, wherein said parameter is calculated each time that a roundtrip time value is measured.
 40. A computer program product directlyloadable into the internal memory of a digital computer, comprisingsoftware code portions for performing the method of claim 1 when saidproduct is run on a digital computer.
 41. A computer program productdirectly loadable into the internal memory of a digital computer,comprising software code portions for performing the method of claim 11when said product is run on a digital computer.
 42. A computer programproduct directly loadable into the internal memory of a digitalcomputer, comprising software code portions for performing the method ofclaim 17 when said product is run on a digital computer.
 43. A data unittransmitter arranged for implementing a protocol that provides anacknowledgment feature of sending acknowledgment messages for thecorrect receipt of data units from the receiver to the sender of acommunication, and provides a retransmission time-out feature ofretransmitting data units if an acknowledgment does not arrive at thesender within a time-out period, and arranged for determining aparameter associated with said retransmission time-out feature,comprising: a round trip time measurer arranged for measuring a roundtrip time value, the round trip time being indicative of the time thatpasses between the sending of a given data unit and the receipt of theacknowledgment corresponding to said given data unit, and a calculatorarranged for calculating a new smoothed round trip time value at leaston the basis of a stored smoothed round trip time value and saidmeasured round trip time value, calculating a new mean deviation valueindicative of the mean deviation of said round trip time values overtime, at least on the basis of a stored mean deviation value, saidmeasured round trip time value and said stored smoothed round trip timevalue, and calculating said parameter at least on the basis of said newsmoothed round trip time value and said new mean deviation value, wheresaid calculator is furthermore arranged such that a contribution of saidmeasured round trip time value to said new mean deviation value isdifferent if said measured round trip time value is smaller than apredetermined threshold that is determined on the basis of said storedsmoothed round trip time value, than if said measured round trip timevalue is larger than said predetermined threshold.
 44. A data unittransmitter arranged for implementing a protocol that provides anacknowledgment feature of sending acknowledgment messages for thecorrect receipt of data units from the receiver to the sender of acommunication, and provides a retransmission time-out feature ofretransmitting data units if an acknowledgment does not arrive at thesender within a time-out period, and arranged for determining aparameter associated with said retransmission time-out feature,comprising: a round trip time measurer arranged for measuring a roundtrip time value, the round trip time being indicative of the time thatpasses between the sending of a given data unit and the receipt of theacknowledgment corresponding to said given data unit, and a calculatorarranged for calculating a new smoothed round trip time value at leaston the basis of a stored smoothed round trip time value, said measuredround trip time value, and a first weight factor, calculating a new meandeviation value indicative of the mean deviation of said round trip timevalues over time, at least on the basis of a stored mean deviationvalue, said measured round trip time value, said stored smoothed roundtrip time value, and a second weight factor (h), and calculating saidparameter at least on the basis of said new smoothed round trip timevalue, said new mean deviation value, and a third weight factor, wheresaid calculator is furthermore arranged such that at least one of saidfirst, second and third weight factors is variable over time.
 45. A dataunit transmitter arranged for implementing a protocol that provides anacknowledgment feature of sending acknowledgment messages for thecorrect receipt of data units from the receiver to the sender of acommunication, and provides a retransmission time-out feature ofretransmitting data units if an acknowledgment does not arrive at thesender within a time-out period, and arranged for determining aparameter associated with said retransmission time-out feature,comprising: a round trip time measurer arranged for measuring a roundtrip time value, the round trip time being indicative of the time thatpasses between the sending of a given data unit and the receipt of theacknowledgment corresponding to said given data unit, and a calculatorarranged for calculating a new smoothed round trip time value at leaston the basis of a stored smoothed round trip time value and saidmeasured round trip time value, calculating a new mean deviation valueindicative of the mean deviation of said round trip time values overtime, at least on the basis of a stored mean deviation value, saidmeasured round trip time value and said stored smoothed round trip timevalue, and calculating said parameter at least on the basis of said newsmoothed round trip time value and said new mean deviation value, wheresaid calculator is furthermore arranged such that said parameter (RTO)is also calculated on the basis of a value V indicative of the number ofspurious time-outs that occurred in said communication between saidsender and said receiver.